/**
 * 
 * @param {*} cardPoints 
 * @param {*} k 
 * @returns 
 * 几张卡牌 排成一行，每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。

    每次行动，你可以从行的开头或者末尾拿一张卡牌，最终你必须正好拿 k 张卡牌。

    你的点数就是你拿到手中的所有卡牌的点数之和。

    给你一个整数数组 cardPoints 和整数 k，请你返回可以获得的最大点数。
 */
var maxScore = function(cardPoints, k){
    const n = cardPoints.length;
    const m = n-k;
    let sum = 0;
    for(let i = 0; i < m ; i++){
        sum=cardPoints[i]+sum;
    } 
    let total = sum;
    let minS = sum;
    for(let i = m;i < n ; i++){
        sum +=cardPoints[i]-cardPoints[i-m];
        total += cardPoints[i];
        minS = Math.min(sum,minS);
    }
    return total - minS;
};
cardPoints = [1,79,80,1,1,1,200,1];
let k = 3;
console.log(maxScore(cardPoints,k));